package br.edu.fucapi.posgraduacao.poo2.sgr.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * @class Avaliacao.java
 * @author Fabio Oliveira
 * @date 11/01/2013
 * @brief Classe utilizada para persistência dos Projetos.
 */

@Entity
@Table(name = "PROJETO")
@SequenceGenerator(allocationSize = 1, name = "SEQ_PROJETO", sequenceName = "SEQ_PROJETO")
public class Projeto {
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_PROJETO")
	@Column(name = "id_projeto")
	private Integer idProjeto;
	
	@Column(name="nome_projeto", length = 100, nullable = true, unique=true, insertable = true, updatable = true)
	private String nomeProjeto;	
	
	@Column(name="descricao", length = 100, nullable = true, unique=false, insertable = true, updatable = true)
	private String descricao;
	
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "PROJETO_ATIVIDADE", joinColumns = @JoinColumn(name = "id_projeto"),
	inverseJoinColumns = @JoinColumn(name = "id_atividade"))
	private List<Atividade> listaAtividades;

	public Integer getIdProjeto() {
		return idProjeto;
	}
	public void setIdProjeto(final Integer idProjeto) {
		this.idProjeto = idProjeto;
	}
	public String getNomeProjeto() {
		return nomeProjeto;
	}
	public void setNomeProjeto(final String nomeProjeto) {
		this.nomeProjeto = nomeProjeto;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(final String descricao) {
		this.descricao = descricao;
	}
	public List<Atividade> getListaAtividades() {
		return listaAtividades;
	}
	public void setListaAtividades(final List<Atividade> listaAtividades) {
		this.listaAtividades = listaAtividades;
	}	
}
